Don't run reap() or domain_restarts() as side-effects of refresh.
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Fri, 16 Sep 2005 20:12:42 +0000 (20:12 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Fri, 16 Sep 2005 20:12:42 +0000 (20:12 +0000)
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
tools/python/xen/xend/XendDomain.py

index 3e91bb42a40e3f43684a5451c473162eb0cbdd28..83b8be5c1f9f4624c22ce54abd1c77ca2fb38f78 100644 (file)
@@ -96,7 +96,9 @@ class XendDomain:
         return map(lambda x: x.name, doms)
 
     def onReleaseDomain(self):
-        self.refresh(cleanup=True)
+        self.reap()
+        self.refresh()
+        self.domain_restarts()
 
     def watchReleaseDomain(self):
         from xen.xend.xenstore.xswatch import xswatch
@@ -150,7 +152,9 @@ class XendDomain:
                     self._delete_domain(domid)
             else:
                 self._delete_domain(domid)
-        self.refresh(cleanup=True)
+        self.reap()
+        self.refresh()
+        self.domain_restarts()
 
     def dom0_setup():
         dom0 = self.domain_lookup(0)
@@ -245,25 +249,18 @@ class XendDomain:
                     self.domain_restart_schedule(domid, reason)
             dominfo.destroy()
 
-    def refresh(self, cleanup=False):
+    def refresh(self):
         """Refresh domain list from Xen.
         """
-        if cleanup:
-            self.reap()
         doms = self.xen_domains()
         # Remove entries for domains that no longer exist.
         # Update entries for existing domains.
-        do_domain_restarts = False
         for d in self.domains.values():
             info = doms.get(d.domid)
             if info:
                 d.update(info)
-            elif d.restart_pending():
-                do_domain_restarts = True
-            else:
+            elif not d.restart_pending():
                 self._delete_domain(d.domid)
-        if cleanup and do_domain_restarts:
-            scheduler.now(self.domain_restarts)
 
     def update_domain(self, id):
         """Update information for a single domain.